package modelo;

import java.util.ArrayList;

import modelo.agenda.Agenda;
import modelo.agenda.AgendaDAO;
import modelo.agenda.AgendaDAOInterface;
import modelo.cliente.Cliente;
import modelo.cliente.ClienteDAO;
import modelo.cliente.ClienteDAOInterface;
import modelo.compra.Compra;
import modelo.compra.CompraDAO;
import modelo.compra.CompraDAOInterface;
import modelo.contaExterna.ContaExterna;
import modelo.contaExterna.ContaExternaDAO;
import modelo.contaExterna.ContaExternaDAOInterface;
import modelo.fornece.Fornece;
import modelo.fornece.ForneceDAO;
import modelo.fornece.ForneceDAOInterface;
import modelo.fornecedor.Fornecedor;
import modelo.fornecedor.FornecedorDAO;
import modelo.fornecedor.FornecedorDAOInterface;
import modelo.produto.Produto;
import modelo.produto.ProdutoDAO;
import modelo.produto.ProdutoDAOInterface;
import modelo.produtoVenda.ProdutoVenda;
import modelo.produtoVenda.ProdutoVendaDAO;
import modelo.produtoVenda.ProdutoVendaDAOInterface;
import modelo.representante.Representante;
import modelo.representante.RepresentanteDAO;
import modelo.representante.RepresentanteDAOInterface;
import modelo.usuario.Usuario;
import modelo.usuario.UsuarioDAO;
import modelo.usuario.UsuarioDAOInterface;
import modelo.venda.Venda;
import modelo.venda.VendaDAO;
import modelo.venda.VendaDAOInterface;

public class Fachada {
	
	// ** AGENDA ** \\
	
	public static Agenda getByIdAgenda(int id) {
		AgendaDAOInterface agendaDAO = new AgendaDAO(); 
		return agendaDAO.getById(id);
	}
	
	public static ArrayList<Agenda> getListAllAgenda() {
		AgendaDAOInterface agendaDAO = new AgendaDAO();
		return agendaDAO.getListAll();
	}
	
	public static ArrayList<Agenda> getListAgenda(String condicao) {
		AgendaDAOInterface agendaDAO = new AgendaDAO();
		return agendaDAO.getList(condicao);
	}
	
	public static void insertAgenda(Agenda agenda) {
		AgendaDAOInterface agendaDAO = new AgendaDAO();
		agendaDAO.insert(agenda);
	}
	
	public static void deleteAgenda(int id) {
		AgendaDAOInterface agendaDAO = new AgendaDAO();
		agendaDAO.delete(id);
	}
	
	public static void updateAgenda(Agenda agenda) {
		AgendaDAOInterface agendaDAO = new AgendaDAO();
		agendaDAO.update(agenda);
	}

	
	// ** CLIENTE ** \\
	
	public static Cliente getByIdCliente(int id) {
		ClienteDAOInterface clienteDAO = new ClienteDAO();
		return clienteDAO.getById(id);
	}
	
	public static ArrayList<Cliente> getListAllCliente() {
		ClienteDAOInterface clienteDAO = new ClienteDAO();
		return clienteDAO.getListAll();
	}
	
	public static ArrayList<Cliente> getListCliente(String condicao) {
		ClienteDAOInterface clienteDAO = new ClienteDAO();
		return clienteDAO.getList(condicao);
	}
	
	public static void insertCliente(Cliente cliente) {
		ClienteDAOInterface clienteDAO = new ClienteDAO();
		clienteDAO.insert(cliente);
	}
	
	public static void deleteCliente(int id) {
		ClienteDAOInterface clienteDAO = new ClienteDAO();
		clienteDAO.delete(id);
	}
	
	public static void updateCliente(Cliente cliente) {
		ClienteDAOInterface clienteDAO = new ClienteDAO();
		clienteDAO.update(cliente);
	}
	
	// ** COMPRA ** \\
	
	public static Compra getByIdCompra(int id) {
		CompraDAOInterface compraDAO = new CompraDAO();
		return compraDAO.getById(id);
	}
	
	public static ArrayList<Compra> getListAllCompra() {
		CompraDAOInterface compraDAO = new CompraDAO();
		return compraDAO.getListAll();
	}
	
	public static ArrayList<Compra> getListCompra(String condicao) {
		CompraDAOInterface compraDAO = new CompraDAO();
		return compraDAO.getList(condicao);
	}
	
	public static void insertCompra(Compra compra) {
		CompraDAOInterface compraDAO = new CompraDAO();
		compraDAO.insert(compra);
	}
	
	public static void deleteCompra(int id) {
		CompraDAOInterface compraDAO = new CompraDAO();
		compraDAO.delete(id);
	}
	
	public static void updateCompra(Compra compra) {
		CompraDAOInterface compraDAO = new CompraDAO();
		compraDAO.update(compra);
	}

	
	//** FORNECEDOR **\\
	public static Fornecedor getByIdFornecedor(int id) {
		FornecedorDAOInterface fornecedorDAO = new FornecedorDAO();
		return fornecedorDAO.getById(id);
	}
	
	public static ArrayList<Fornecedor> getListAllFornecedor() {
		FornecedorDAOInterface fornecedorDAO = new FornecedorDAO();
		return fornecedorDAO.getListAll();
	}
	
	public static ArrayList<Fornecedor> getListFornecedor(String condicao) {
		FornecedorDAOInterface fornecedorDAO = new FornecedorDAO();
		return fornecedorDAO.getList(condicao);
	}
	
	public static void insertFornecedor(Fornecedor fornecedor) {
		FornecedorDAOInterface fornecedorDAO = new FornecedorDAO();
		fornecedorDAO.insert(fornecedor);
	}
	
	public static void deleteFornecedor(int id) {
		FornecedorDAOInterface fornecedorDAO = new FornecedorDAO();
		fornecedorDAO.delete(id);
	}
	
	public static void updateFornecedor(Fornecedor fornecedor) {
		FornecedorDAOInterface fornecedorDAO = new FornecedorDAO();
		fornecedorDAO.update(fornecedor);
	}
	
	
	// ** CONTA EXTERNA ** \\
	public static ContaExterna getByIdContaExterna(int id) {
		ContaExternaDAOInterface contaExternaDAO = new ContaExternaDAO();
		return contaExternaDAO.getById(id);
	}
	
	public static ArrayList<ContaExterna> getListAllContaExterna() {
		ContaExternaDAOInterface contaExternaDAO = new ContaExternaDAO();
		return contaExternaDAO.getListAll();
	}
	
	public static ArrayList<ContaExterna> getListContaExterna(String condicao) {
		ContaExternaDAOInterface contaExternaDAO = new ContaExternaDAO();
		return contaExternaDAO.getList(condicao);
	}
	
	public static void deleteContaExterna(int id) {
		ContaExternaDAOInterface contaExternaDAO = new ContaExternaDAO();
		contaExternaDAO.delete(id);
	}
	
	public static void insertContaExterna(ContaExterna contaExterna) {
		ContaExternaDAOInterface contaExternaDAO = new ContaExternaDAO();
		contaExternaDAO.insert(contaExterna);
	}
	public static void updateContaExterna(ContaExterna contaExterna) {
		ContaExternaDAOInterface contaExternaDAO = new ContaExternaDAO();
		contaExternaDAO.update(contaExterna);
	}
	
	//** FORNECE **\\
	public static Fornece getByIdFornece(int id) {
		ForneceDAOInterface forneceDAO = new ForneceDAO();
		return forneceDAO.getById(id);
	}
	
	public static ArrayList<Fornece> getListAllFornece() {
		ForneceDAOInterface forneceDAO = new ForneceDAO();
		return forneceDAO.getListAll();
	}
	
	public static ArrayList<Fornece> getListFornece(String condicao) {
		ForneceDAOInterface forneceDAO = new ForneceDAO();
		return forneceDAO.getList(condicao);
	}
	
	public static void deleteFornece(int id) {
		ForneceDAOInterface forneceDAO = new ForneceDAO();
		forneceDAO.delete(id);
	}
	
	public static void insertFornece(Fornece fornece) {
		ForneceDAOInterface forneceDAO = new ForneceDAO();
		forneceDAO.insert(fornece);
	}
	public static void updateFornece(Fornece fornece) {
		ForneceDAOInterface forneceDAO = new ForneceDAO();
		forneceDAO.update(fornece);
	}
	
	// ** PRODUTO ** \\

	public static Produto getByIdProduto(int id) {
		ProdutoDAOInterface produtoDAO = new ProdutoDAO();
		return produtoDAO.getById(id);
	}
	
	public static ArrayList<Produto> getListAllProduto() {
		ProdutoDAOInterface produtoDAO = new ProdutoDAO();
		return produtoDAO.getListAll();
	}
	
	public static ArrayList<Produto> getListProduto(String condicao) {
		ProdutoDAOInterface produtoDAO = new ProdutoDAO();
		return produtoDAO.getList(condicao);
	}
	
	public static void deleteProduto(int id) {
		ProdutoDAOInterface produtoDAO = new ProdutoDAO();
		produtoDAO.delete(id);
	}
	
	public static void insertProduto(Produto produto) {
		ProdutoDAOInterface produtoDAO = new ProdutoDAO();
		produtoDAO.insert(produto);
	}
	public static void updateProduto(Produto produto) {
		ProdutoDAOInterface produtoDAO = new ProdutoDAO();
		produtoDAO.update(produto);
	}
	
	// ** PRODUTO VENDA ** \\

	public static ProdutoVenda getByIdProdutoVenda(int id) {
		ProdutoVendaDAOInterface produtoVendaDAO = new ProdutoVendaDAO();
		return produtoVendaDAO.getById(id);
	}
	
	public static ArrayList<ProdutoVenda> getListAllProdutoVenda() {
		ProdutoVendaDAOInterface produtoVendaDAO = new ProdutoVendaDAO();
		return produtoVendaDAO.getListAll();
	}
	
	public static ArrayList<ProdutoVenda> getListProdutoVenda(String condicao) {
		ProdutoVendaDAOInterface produtoVendaDAO = new ProdutoVendaDAO();
		return produtoVendaDAO.getList(condicao);
	}
	
	public static void deleteProdutoVenda(int id) {
		ProdutoVendaDAOInterface produtoVendaDAO = new ProdutoVendaDAO();
		produtoVendaDAO.delete(id);
	}
	
	public static void insertProdutoVenda(ProdutoVenda produtoVenda) {
		ProdutoVendaDAOInterface produtoVendaDAO = new ProdutoVendaDAO();
		produtoVendaDAO.insert(produtoVenda);
	}
	public static void updateProdutoVenda(ProdutoVenda produtoVenda) {
		ProdutoVendaDAOInterface produtoVendaDAO = new ProdutoVendaDAO();
		produtoVendaDAO.update(produtoVenda);
	}
	// ** REPRESENTANTE ** \\
	
	public static Representante getByIdRepresentante(int id) {
		RepresentanteDAOInterface representanteDAO = new RepresentanteDAO();
		return representanteDAO.getById(id);
	}
	
	public static ArrayList<Representante> getListAllRepresentante() {
		RepresentanteDAOInterface representanteDAO = new RepresentanteDAO();
		return representanteDAO.getListAll();
	}
	
	public static ArrayList<Representante> getListRepresentante(String condicao) {
		RepresentanteDAOInterface representanteDAO = new RepresentanteDAO();
		return representanteDAO.getList(condicao);
	}
	
	public static void insertRepresentante(Representante representante) {
		RepresentanteDAOInterface representanteDAO = new RepresentanteDAO();
		representanteDAO.insert(representante);
	}
	
	public static void deleteRepresentante(int id) {
		RepresentanteDAOInterface representanteDAO = new RepresentanteDAO();
		representanteDAO.delete(id);
	}
	
	public static void updateRepresentante(Representante representante) {
		RepresentanteDAOInterface representanteDAO = new RepresentanteDAO();
		representanteDAO.update(representante);
	}
	
	// ** USUARIO ** \\
	
	public static Usuario getByIdUsuario(int id) {
		UsuarioDAOInterface usuarioDAO = new UsuarioDAO();
		return usuarioDAO.getById(id);
	}
	
	public static ArrayList<Usuario> getListAllUsuario() {
		UsuarioDAOInterface usuarioDAO = new UsuarioDAO();
		return usuarioDAO.getListAll();
		
	}
	
	public static ArrayList<Usuario> getListUsuario(String condicao) {
		UsuarioDAOInterface usuarioDAO = new UsuarioDAO();
		return usuarioDAO.getList(condicao);
	}
	
	public static void insertUsuario(Usuario usuario) {
		UsuarioDAOInterface usuarioDAO = new UsuarioDAO();
		usuarioDAO.insert(usuario);
	}
	public static void deleteUsuario(int id) {
		UsuarioDAOInterface usuarioDAO = new UsuarioDAO();
		usuarioDAO.delete(id);
	}
	
	public static void updateUsuario(Usuario usuario) {
		UsuarioDAOInterface usuarioDAO = new UsuarioDAO();
		usuarioDAO.update(usuario);
	}
	
	// ** VENDA ** \\
	
	public static Venda getByIdVenda(int id) {
		VendaDAOInterface vendaDAO = new VendaDAO();
		return vendaDAO.getById(id);
	}
	
	public static ArrayList<Venda> getListAllVenda() {
		VendaDAOInterface vendaDAO = new VendaDAO();
		return vendaDAO.getListAll();
	}
	
	public static ArrayList<Venda> getListVenda(String condicao) {
		VendaDAOInterface vendaDAO = new VendaDAO();
		return vendaDAO.getList(condicao);
	}
	
	public static void insertVenda(Venda venda) {
		VendaDAOInterface vendaDAO = new VendaDAO();
		vendaDAO.insert(venda);
	}
	public static void deleteVenda(int id) {
		VendaDAOInterface vendaDAO = new VendaDAO();
		vendaDAO.delete(id);
	}
	public static void updateVenda(Venda venda) {
		VendaDAOInterface vendaDAO = new VendaDAO();
		vendaDAO.update(venda);
	}
	
}